package com.xinyue.design.singleton;

/**
 * 这种实现方式最大的优势在于：既保证了线程安全，又实现的延缓加载。
 */
public class BestSingleton {
	
	private BestSingleton() {
		System.out.println("chushihua!");
	}
	//类级的内部类，也就是静态的成员式内部类，该内部类的实例与外部类的实例
	//没有绑定关系，而且只有被调用到才会装载，从而实现了延迟加载
	private static class SingletonHolder{  
		//静态初始化器，由JVM来保证线程安全 
        private static BestSingleton instance = new BestSingleton();  
    }

	public static BestSingleton getInstance() {
		return SingletonHolder.instance;
	}
}
